﻿using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;

namespace ComHlp.ContentClasses.VirtualControls.PlanBoard
{
    /// <summary> intex net plan/gantt f.x.  
    /// class holding the main definition (the orders are logical childs)</summary>
    [SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global")]
    public class ParsedPlanBoard
    {
        /// <summary> fix „1“  </summary>
        public int No { get; set; }

        /// <summary> 1=2h, 2=8h, 3=1d,4=2,5d, 5=3,5d, 6=1w, 7=1m </summary>
        public EPlanBoardRaster Raster { get; set; }

        /// <summary> max-Zeilen im Layout </summary>
        public int YMax { get; set; }

        /// <summary> J=textbuffer initikalisieren </summary>
        public bool InitTextBuffer { get; set; }

        /// <summary> A oder höher -> Auftext.15=Vorplanung; Auftext.16=Info-unten; 
        /// Auftext ab 17=text </summary>
        public char Revision { get; set; }

        /// <summary> lfd-Seite links/rechts </summary>
        public int XMaxPageNo { get; set; }

        public int XCurrentPageNo { get; set; }

        /// <summary> mögliche Zeilen für Aufträge oben (wenn kleiner 8 => Anzeige 3-Zeilig je Auftrag; wenn=9 => 
        /// Planungsmodus) </summary>
        public int YRaster { get; set; }

        /// <summary> tatsächliche gefüllte Zeilen (Anzahl Maschinen) </summary>
        public int YCount { get; set; }

        // todo... doc to undescriptive

        public List<ItxPlanBoardOrder> Orders { get; set; }=new List<ItxPlanBoardOrder>();

        public List<string> RgbColors { get; } = new List<string>();

        public List<string> Dates { get; } = new List<string>();

        public List<ItxPlanBoardMachine> Machines { get; } = new List<ItxPlanBoardMachine>();

        public List<ItxPlanBoardBounds> PlanningBounds { get; } = new List<ItxPlanBoardBounds>();

        public List<string> OrderTexts { get; } = new List<string>();

        public string SelectedOrder { get; set; }

        public int Day0Diff { get; set; }

        public bool SuppressFinishedOrders { get; set; }

        public bool SubmitWithoutRuestzeiten { get; set; }

        public EPlanBoardRaster HrFactorRaster { get; set; }

        public string HrFactorTable { get; set; }

        public List<string> Line3OrderTexts { get; }= new List<string>();

        public List<string> OrderPlusTexts { get; } = new List<string>();

        // todo... doc to undescriptive
    }
}
